1508A - Binary Literature - CodeForces Solution


constructive algorithms greedy implementation strings two pointers *1900

Please click on ads to support us..

C++ Code:

#include <bits/stdc++.h>
using namespace std;

const int N = 1e5 + 5;

char a[3][2*N];
char s[3*N];

const char* solve() {
    int n;
    cin >> n >> a[0] >> a[1] >> a[2];

    int cnt[3][2] = {0};
    for (int k = 0; k < 3; k++) {
        for (int i = 0; i < 2*n; i++)
            cnt[k][a[k][i] - '0']++;
    }

    // Choose appropriate strings and character (0 or 1)
    int u, v; char c;
    for (int uu = 0; uu < 3; uu++) {
        for (int vv = uu+1; vv < 3; vv++) {
            for (int cc = 0; cc < 2; cc++) {
                if (cnt[uu][cc] >= n && cnt[vv][cc] >= n) {
                    u = uu;
                    v = vv;
                    c = cc + '0';
                }
            }
        }
    }

    int p = 0, q = 0, r = 0;
    while (p < 2*n && q < 2*n) {
        if (a[u][p] == a[v][q]) {
            s[r++] = a[u][p];
            p++, q++;
        }
        else if (a[u][p] != c)
            s[r++] = a[u][p++];
        else
            s[r++] = a[v][q++];
    }
    while (p < 2*n)
        s[r++] = a[u][p++];
    while (q < 2*n)
        s[r++] = a[v][q++];
    s[r] = 0;
    return s;
}

int main() {
    cin.tie(0)->sync_with_stdio(false);

    int t; cin >> t;
    while (t--)
        cout << solve() << "\n";

    return 0;
}


Comments

Submit
0 Comments
More Questions

1333A - Little Artem
432D - Prefixes and Suffixes
486A - Calculating Function
1373B - 01 Game
1187A - Stickers and Toys
313B - Ilya and Queries
579A - Raising Bacteria
723A - The New Year Meeting Friends
302A - Eugeny and Array
1638B - Odd Swap Sort
1370C - Number Game
1206B - Make Product Equal One
131A - cAPS lOCK
1635A - Min Or Sum
474A - Keyboard
1343A - Candies
1343C - Alternating Subsequence
1325A - EhAb AnD gCd
746A - Compote
318A - Even Odds
550B - Preparing Olympiad
939B - Hamster Farm
732A - Buy a Shovel
1220C - Substring Game in the Lesson
452A - Eevee
1647B - Madoka and the Elegant Gift
1408A - Circle Coloring
766B - Mahmoud and a Triangle
1618C - Paint the Array
469A - I Wanna Be the Guy